package com.gitee.qdbp.base.controlling;

import com.gitee.qdbp.able.exception.ServiceException;
import com.gitee.qdbp.base.enums.OperateType;

/**
 * 数据隔离处理接口
 *
 * @author zhaohuihua
 */
public interface IDataIsolationControlling {

    /** 数据隔离处理, 扫描object的@DataIsolation注解, 根据规则设置默认值或检查属性值是否在允许之列 **/
    void handle(Object o, OperateType operateType) throws ServiceException;

    /** 数据隔离处理, 通过fields指定需要处理的字段, 根据规则设置默认值或检查属性值是否在允许之列 **/
    // handle(where, OperateType.QUERY, "tenantCode", "deptCode");
    void handle(Object object, OperateType operateType, String field, String... fields) throws ServiceException;
}
